package com.system.handler;

/**
 * 业务异常，这里约定每个业务场景的错误都是有一个错误码的。 这个错误码需要展示给前端。前端需要根据这个码值做一些特殊的判断。 如余额不足，错误码
 * 001，那么前端根据这个码值引导用户去充值页面。
 * 
 * @Package: com.steel.base
 * @ClassName: ServiceException.java
 * @Description:RuntimeException异常捕获
 * 
 * @author kaifa008
 * @date 2022年3月24日 下午1:45:12
 * @Copyright: 2022 Copyright (c) 2018 LgSteel
 */
@SuppressWarnings("serial")
public class ServiceException extends RuntimeException {

	private Integer code;

	/**
	 * 构造一个业务异常类 默认构造器code为400
	 * 
	 * @param message
	 */
	public ServiceException(String message) {
		super(message);
		this.code = 400;
	}

	/**
	 * 构造一个业务异常类
	 * 
	 * @param code
	 * @param message
	 */
	public ServiceException(Integer code, String message) {
		super(message);
		this.code = code;
	}

	/**
	 * 返回错误码
	 * 
	 * @return 错误码
	 */
	public Integer getCode() {
		return code;
	}

	/**
	 * 构建对象，默认code为400
	 * 
	 * @Title: bulid
	 * @Description: 构建对象，默认code为400
	 * @param message
	 * @return
	 * @author: kaifa008
	 */
	public static ServiceException bulid(String message) {
		return new ServiceException(message);
	}

	/**
	 * 构建对象
	 * 
	 * @Title: bulid
	 * @Description: 构建对象
	 * @param code
	 * @param message
	 * @return
	 * @author: kaifa008
	 */
	public static ServiceException bulid(Integer code, String message) {
		return new ServiceException(code, message);
	}

}
